From 165dab826540cf96aedc6f384b77b3a9ace56741 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Tue, 26 Jun 2018 21:40:59 +0200 Subject: [PATCH] gl renderer: Ignore 0-sized fallback nodes --- gsk/gl/gskglrenderer.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c index 2be5fbeadc..ad2e8c5cf7 100644 --- a/gsk/gl/gskglrenderer.c +++ b/gsk/gl/gskglrenderer.c @@ -321,13 +321,19 @@ render_fallback_node (GskGLRenderer *self, const GskQuadVertex *vertex_data) { const float scale = ops_get_scale (builder); + const int surface_width = ceilf (node->bounds.size.width) * scale; + const int surface_height = ceilf (node->bounds.size.height) * scale; cairo_surface_t *surface; cairo_t *cr; int texture_id; + if (surface_width <= 0 || + surface_height <= 0) + return; + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, - ceilf (node->bounds.size.width) * scale, - ceilf (node->bounds.size.height) * scale); + surface_width, + surface_height); cairo_surface_set_device_scale (surface, scale, scale); cr = cairo_create (surface); @@ -349,8 +355,8 @@ render_fallback_node (GskGLRenderer *self, /* Upload the Cairo surface to a GL texture */ texture_id = gsk_gl_driver_create_texture (self->gl_driver, - cairo_image_surface_get_width (surface), - cairo_image_surface_get_height (surface)); + surface_width, + surface_height); gsk_gl_driver_bind_source_texture (self->gl_driver, texture_id); gsk_gl_driver_init_texture_with_surface (self->gl_driver, -- 2.30.2